package 牛客周赛.牛客周赛Round86;

import java.util.Scanner;
import java.util.Stack;

/**
 * @Title: C
 * @Author 贾金博
 * @Package 牛客周赛.牛客周赛Round86
 * @Date 2025/4/8 上午9:29
 * @description: This is C
 */
public class C {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int t = sc.nextInt();
        while(t -- > 0 ) {
            int n = sc.nextInt();
            String s = sc.next();
            int sum = 0;
            String ret = "" + s.charAt(0);
            for(int i = 1; i < s.length(); i ++ ) {
                if(!ret.isEmpty() && s.charAt(i) == ret.charAt(ret.length() - 1)) {
                    ret = ret.substring(0, ret.length() - 1);// 那么就去截掉最后一个
                } else {
                    ret = ret + s.charAt(i);
                }
            }
            // 现在开始去两两比较 如果要是存在不一样的话 就去 +1
            for(int i = 0; i < ret.length() - 1; i ++ ) {
                if(ret.charAt(i) != ret.charAt(i + 1)) {
                    sum ++;
                }
                i ++ ;
            }
            System.out.println(sum);
            // 这里需要去判断奇偶 如果要是奇数的话 那么就一定会剩下一下
            // 要是偶数的话 那么就一定会剩下0个的

            // 先去用桟 让两两先去消掉
//            Stack<Character>st = new Stack<>();
//
//            for(int i = 0; i < n; i ++ ) {
//                if(st.isEmpty()) st.push(s.charAt(i)); // 如果要是桟为空的话 就直接放进去了
//                else {
//
//                }
//            }
        }
    }
}
